package com.weijian.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weijian.dal.model.NotificationMessage;

import java.util.List;

/**
 * 消息通知服务接口
 */
public interface NotificationService extends IService<NotificationMessage> {
    
    /**
     * 发送消息通知
     */
    void sendNotification(NotificationMessage message);
    
    /**
     * 获取用户消息列表（分页）
     */
    IPage<NotificationMessage> getUserMessages(Long userId, int page, int size);
    
    /**
     * 获取用户未读消息数量
     */
    int getUnreadCount(Long userId);
    
    /**
     * 获取用户各类型未读消息数量
     */
    List<java.util.Map<String, Object>> getUnreadCountByType(Long userId);
    
    /**
     * 标记消息已读
     */
    boolean markAsRead(Long userId, Long messageId);
    
    /**
     * 批量标记消息已读
     */
    boolean batchMarkAsRead(Long userId, List<Long> messageIds);
    
    /**
     * 删除消息（软删除）
     */
    boolean deleteMessage(Long userId, Long messageId);
}